#pragma once
#include "Node.h"
#include <vector>
using namespace std;
class AStar
{
public:
	AStar();
	~AStar();


	//Adds start to open list, calls recursive search
	std::vector<Node*> Setup(Node* p_StartingNode, Node* p_GoalNode);
	void Run();
	int CalculateMDistance(Node* p_Node);
	int CalculateMDistance(Node* p_Node1, Node* p_Node2);
private:
	void Reset();

	Node* m_StartingNode;
	Node* m_GoalNode;

	std::vector<Node*> m_OpenList;
	std::vector<Node*> m_ClosedList;
	//vector<vector<Node*> > m_Grid;

	std::vector<Node*> m_vPath;

	//TEMP DELETE LATER

	Node* tempNode;
	int tempNodeID;
	Node* tempNode2;

	bool found;

};

